Practical lock-freedom
نویسنده
چکیده
Mutual-exclusion locks are currently the most popular mechanism for interpro-cess synchronisation, largely due to their apparent simplicity and ease of implementation. In the parallel-computing environments that are increasingly commonplace in high-performance applications, this simplicity is deceptive: mutual exclusion does not scale well with large numbers of locks and many concurrent threads of execution. Highly-concurrent access to shared data demands a sophisticated 'fine-grained' locking strategy to avoid serialising non-conflicting operations. Such strategies are hard to design correctly and with good performance because they can harbour problems such as deadlock, priority inversion and convoying. Lock manipulations may also degrade the performance of cache-coherent multiprocessor systems by causing coherency conflicts and increased interconnect traffic, even when the lock protects read-only data. In looking for solutions to these problems, interest has developed in lock-free data structures. By eschewing mutual exclusion it is hoped that more efficient and robust systems can be built. Unfortunately the current reality is that most lock-free algorithms are complex, slow and impractical. In this dissertation I address these concerns by introducing and evaluating practical abstractions and data structures that facilitate the development of large-scale lock-free systems. Firstly, I present an implementation of two useful abstractions that make it easier to develop arbitrary lock-free data structures. Although these abstractions have been described in previous work, my designs are the first that can be practically implemented on current multiprocessor systems. Secondly, I present a suite of novel lock-free search structures. This is interesting not only because of the fundamental importance of searching in computer science and its wide use in real systems, but also because it demonstrates the implementation issues that arise when using the practical abstractions I have developed. Finally, I evaluate each of my designs and compare them with existing lock-based and lock-free alternatives. To ensure the strongest possible competition, several of the lock-based alternatives are significant improvements on the best-known solutions in the literature. These results demonstrate that it is possible to build useful data structures with all the perceived benefits of lock-freedom and with performance better than sophisticated lock-based designs. Furthermore, and contrary to popular belief, this work shows that existing hardware primi-tives are sufficient to build practical lock-free implementations of complex data structures. i ii Preface This dissertation is the result of my own work and includes nothing which is the outcome of work done in collaboration except where specifically indicated in the text. This dissertation is …
منابع مشابه
Hydraulic anti-lock, anti-skid braking system using fuzzy controller
To maintain the stability trajectory of vehicles under critical driving conditions, anti lock-anti skid controllers, consisting of four anti-lock sub-controllers for each wheel and two anti-skid sub-controllers for left and right pair wheels have been separately designed. Wheel and body systems have been simulated with seven degrees of freedom to evaluate the proper functioning of controllers. ...
متن کاملObstruction-Free Algorithms Can Be Practically Wait-Free
The obstruction-free progress condition is weaker than previous nonblocking progress conditions such as lock-freedom and waitfreedom, and admits simpler implementations that are faster in the uncontended case. Pragmatic contention management techniques appear to be effective at facilitating progress in practice, but, as far as we know, none guarantees progress. We present a transformation that ...
متن کاملA Program Logic for Contextual Refinement of Concurrent Objects under Fair Scheduling
Existing program logics on concurrent object verification either ignore progress properties, or aim for non-blocking progress (e.g., lock-freedom and wait-freedom), which cannot be applied to blocking algorithms that progress only under fair scheduling. In this paper we propose a new program logic for compositional verification of contextual refinement of concurrent objects under fair schedulin...
متن کاملYet Another Type System for Lock-Free Processes
A network of processes is lock free if every message produced in it is eventually consumed and if every process waiting for a message eventually receives one. We study a type system guaranteeing that well-typed process networks are lock free. Despite its minimality, our type system subsumes existing type-based approaches for lock freedom. In particular, we show that interactions whose lock free...
متن کاملAn Expressive Framework for Verifying Deadlock Freedom
This paper presents an expressive specification and verification framework for ensuring deadlock freedom of shared-memory concurrent programs that manipulate locks. We introduce a novel delayed lockset checking technique to guarantee deadlock freedom of programs with interactions between thread and lock operations. With disjunctive formulae, we highlight how an abstraction based on precise lock...
متن کامل